package com.xbongbong.paas.service.workflow.comment;

import com.xbongbong.paas.domain.entity.ext.PaasFormDataEntityExt;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.UserVO;
import com.xbongbong.saas.enums.BusinessCommentEnum;

import java.util.List;

/**
 * @author: wufeng
 * @date: 2018/8/29 10:01
 * @desrcption: 评论操作
 */
public interface WorkflowCommentPushMsgService {
    
    /**
     * 评论消息推送
     *
     * @param businessType  业务类型
     * @param refId         业务数据id
     * @param corpid        公司id
     * @param atUserIds     @的人员
     * @param content
     * @param businessCommentEnum
     * @author GuoJun.HU
     * @since V1.0
     * @throws XbbException XbbException
     * @date 2019/4/18 14:10
     */
    void pushComment(UserVO loginUser, Integer businessType, Long refId, String corpid, List<String> atUserIds, String content, BusinessCommentEnum businessCommentEnum, Boolean isInform) throws XbbException;
    
    /**
     * 评论@消息推送
     *
     * @param refId                 业务数据id
     * @param corpid                公司id
     * @param atUserIds             @的人员
     * @param businessCommentEnum   业务类型
     * @param paasFormDataEntityExt 业务数据
     * @param content
     * @author GuoJun.HU
     * @since V1.0
     * @throws XbbException XbbException
     * @date 2019/4/18 14:10
     */
    void pushCommentAt(UserVO loginUser, Long refId, String corpid, List<String> atUserIds, BusinessCommentEnum businessCommentEnum, PaasFormDataEntityExt paasFormDataEntityExt, String content) throws XbbException;
    
    
    /**
     *  审批评论@推送消息
     * @param loginUser
     * @param taskId 原refId 就是taskId
     * @param atUserIds
     * @throws XbbException
     */
    void pushProcessComment(UserVO loginUser, Long taskId, List<String> atUserIds) throws XbbException;
    
    
    /**
     * 评论删除消息推送
     *
     * @param businessType  业务类型
     * @param refId         业务数据id
     * @param corpid        公司id
     * @param content
     * @param businessCommentEnum
     * @throws XbbException XbbException
     * @date 2020/4/15 13:40
     */
    void pushCommentDelete(UserVO loginUser, Integer businessType, Long refId, String corpid, String content, BusinessCommentEnum businessCommentEnum) throws XbbException;
    
    
    /**
     * 工单动态编辑消息推送
     *
     * @param businessType  业务类型
     * @param refId         业务数据id
     * @param corpid        公司id
     * @param content
     * @param businessCommentEnum
     * @throws XbbException XbbException
     * @date 2020/4/15 13:40
     */
    void pushCommentEdit(UserVO loginUser, Integer businessType, Long refId, String corpid, List<String> atUserIds, String content, BusinessCommentEnum businessCommentEnum) throws XbbException;
    
}
